package common;

import constant.Constants;
import io.github.bonigarcia.wdm.WebDriverManager;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.edge.EdgeOptions;

import java.io.File;
import java.io.IOException;
import java.sql.Driver;
import java.text.SimpleDateFormat;
import java.time.Duration;

public class Utils {
    public static WebDriver driver = null;
    // 创建驱动
    public static void creaeDriver() {
        if (driver == null) {
            // 驱动管理
            WebDriverManager.edgedriver().setup();
            // 配置选项
            EdgeOptions options = new EdgeOptions();
            options.addArguments("--remote-allow-origins=*");
            driver = new EdgeDriver(options);
            // 等待
            driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(Constants.DEFALUT_WAIT_SECONDS));
        }
    }

    public Utils() {
        // 调用 driver 对象
        creaeDriver();
    }

    /**
     * 屏幕截图
     * @param methodName 方法名
     */
    public void getScreenShot(String methodName) {
        // 截屏的年、月、日
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        // 截图的时分秒+毫秒
        SimpleDateFormat format1 = new SimpleDateFormat("HH-mm-ss-SS");
        String dirTime = format.format(System.currentTimeMillis());
        String fileTime = format1.format(System.currentTimeMillis());
        // 文件名
        String fileName = Constants.SCREEN_DEFAULT_PATH + dirTime + "/" + methodName + "/" + fileTime + ".png";
        File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
        // 将截图放到指定位置
        try {
            FileUtils.copyFile(srcFile, new File(fileName));
        } catch (IOException e) {
            System.out.println("截图失败!");
            e.printStackTrace();
        }
    }
}
